home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / e / amigae21 / amigae.txt next >
Text File  |  1993-07-06  |  7KB  |  171 lines

  1. From Informatik.Uni-Dortmund.DE!Germany.EU.net!mcsun!uunet!paladin.american.edu!howland.reston.ans.net!sol.ctr.columbia.edu!The-Star.honeywell.com!umn.edu!csus.edu!ucdavis!toadflax.cs Mon Jan 18 11:38:28 1993
  2. Article: 242 of comp.sys.amiga.announce
  3. Path: Informatik.Uni-Dortmund.DE!Germany.EU.net!mcsun!uunet!paladin.american.edu!howland.reston.ans.net!sol.ctr.columbia.edu!The-Star.honeywell.com!umn.edu!csus.edu!ucdavis!toadflax.cs
  4. From: WOUTER@ALF.LET.UVA.NL (Wouter van Oortmerssen)
  5. Newsgroups: comp.sys.amiga.announce
  6. Subject: E programming language Compiler now available
  7. Message-ID: <21400@ucdavis.ucdavis.edu>
  8. Date: 15 Jan 93 18:14:38 GMT
  9. Sender: usenet@ucdavis.ucdavis.edu
  10. Reply-To: WOUTER@ALF.LET.UVA.NL (Wouter van Oortmerssen)
  11. Followup-To: comp.sys.amiga.misc
  12. Lines: 153
  13. Approved: zerkle@cs.ucdavis.edu
  14. Message-Number: 320
  15.  
  16.  
  17.                                   ANNOUNCEMENT:
  18.  
  19.                              For release as of today
  20.  
  21.                 +-----------------------------------------------+
  22.                 |                                               |
  23.                 |                 Amiga E v2.1                  |
  24.                 |          Compiler for The E Language          |
  25.                 |           By Wouter van Oortmerssen           |
  26.                 |                                               |
  27.                 +-----------------------------------------------+
  28.  
  29.  
  30. E is a procedural higher programming language, mainly influenced by
  31. languages such as C and Modula2. It is an all-purpose programming language,
  32. and the Amiga implementation is specifically targeted at programming
  33. system applications.
  34.  
  35. Amiga E is a compiler written in assembly (support utilities are all
  36. written in E), that offers enough power to enable (semi-)proffesional
  37. as well as other programmers to produce high quality applications.
  38.  
  39.  
  40. The major features of the language/this implementation include:
  41.  
  42. - Compilation speed of 10.000 to 35.000 lines/minute on a 7mhz Amiga 500,
  43.   25.000 to 85.000 l/m on a 14mhz Amiga 1200 (both _without_ fastram).
  44.   Faster than any of it's commercial opponents
  45.  
  46. - Produces small and fast executables from sourcecode in one go: linker,
  47.   assembler and other program modules integrated into the compiler.
  48.   Very fast turnaround times even when running from your own editor.
  49.  
  50. - True Inline Assembly with identifier sharing: a complete assembler
  51.   has been build in to the language that interfaces with E in a
  52.   natural fashion. However, assembly in E is 100% optional.
  53.  
  54. - Module system for import of library definitions/constants/functions
  55.   (much like TurboPascals UNITs); a large set of pre-compiled modules
  56.   provide for great programming power and extendability.
  57.   _All_ commodore's 2.04 includes available as E modules (E is
  58.   still v1.3 compatible though).
  59.  
  60. - Large amount of integrated system functions: OpenW(), OpenS(),
  61.   Gadget(), WriteF(), TextF(), and numerous string/list/IO functions.
  62.   For just about any task there's a large library of functions to
  63.   make life easier.
  64.  
  65. - All librarycalls of Exec, Dos, Intuition and Graphics of 2.04
  66.   integrated as system functions into the compiler: call them without
  67.   opening the library or including files. All other libraries accessible too.
  68.  
  69. - Flexible and powerfull "type" system: one basic non-complex 32bit
  70.   LONG variable, and datatypes ARRAY, STRING, LIST and OBJECT,
  71.   code-security and generallity through low-level polymorphism.
  72.  
  73. - LISP functionality, functions like:  Eval(), ForAll(), Exists()
  74.   Implement algorithms that would require lambda-functions.
  75.  
  76. - immediate lists, typed lists
  77.   Build complex data structures with all sort of data directly
  78.   in expressions, make TagLists, structs, vararg function calls
  79.   on the fly, like: [1,2,3] is a list. For example, this is a _complete_
  80.   program that pops up a requester in E, with the command line
  81.   arguments as text, and returns 0 or WARN to dos, depending on the
  82.   selection:
  83.  
  84.   PROC main() RETURN EasyRequestArgs(0,[20,0,0,arg,'ok|cancel'],0,NIL)*5
  85.  
  86.   lists provide for a compact, clear and powerfull style of programming.
  87.  
  88. - exception handling a la ADA
  89.   provide handlers on all kinds of levels in programs, define
  90.   automatic exception raising for often used functions like
  91.   memory allocations, and implement complex resource allocation
  92.   schemes with ease through recursive calls of handlers.
  93.  
  94. - compiles compact small programs with SMALL code/data model and large
  95.   applications with LARGE model in seconds.
  96.   the compiler processes sources of 100k and more faster than linkers
  97.   for other systems do, and generates quite good code along the way.
  98.  
  99. - Managable development system: one executable (the compiler/assembler/
  100.   linker) and optionally a set of Module files is all you will need.
  101.  
  102.  
  103. Negative points:
  104. - some features not (yet) implemented, like: OOP, creation of own modules,
  105.   sourcelevel debugger/interface builder etc.
  106. - *very* memory hungry: you're advised to have a minimum memory of 1 meg.
  107. - no 020/030/881 specific code-generation (yet).
  108.  
  109. much of these "missing features" are scheduled for later versions.
  110.  
  111. To show what E looks like, here's a complete source code that pops up
  112. the Asl.Library filerequester:
  113.  
  114. /* AslDemo.e, somewhat shortened */
  115.  
  116. MODULE 'Asl', 'libraries/Asl'
  117.  
  118. PROC main()
  119.   DEF req:PTR TO filerequestr
  120.   IF aslbase:=OpenLibrary('asl.library',37)
  121.     IF req:=AllocFileRequest()
  122.       IF RequestFile(req) THEN WriteF('File: "\s" in "\s"\n',req.file,req.dir)
  123.       FreeFileRequest(req)
  124.     ENDIF
  125.     CloseLibrary(aslbase)
  126.   ENDIF
  127. ENDPROC
  128.  
  129.  
  130. To get Amiga E v2.1,
  131.  
  132. - wait for it to appear on the new fishes (any time now)
  133.  
  134. - get it via FTP. it should be on:
  135.  
  136.         wuarchive.wustl.edu
  137.  
  138.                 systems/amiga/incoming/programming
  139.                 systems/amiga/programming
  140.  
  141.         amiga.physik.unizh.ch
  142.  
  143.                 amiga/new
  144.  
  145.   the files must be something like:
  146.  
  147.         AmigaE21.lha    (207526 bytes)
  148.         AmigaE21.readme
  149.  
  150.   NOTE WELL: accidentally, a version of 2.1 that contains a small bug
  151.              in the exception-handling routines is also on some
  152.              FTP sites. when up or downloading, see to it that you
  153.              get the version of --> 207526 <-- bytes
  154.  
  155.  
  156. if, for some reason you want to contact me:
  157. (preferably the first address)
  158.  
  159.  
  160.         Wouter@alf.let.uva.nl    (E-programming support)
  161. or:     Wouter@mars.let.uva.nl   (personal)
  162.  
  163.  
  164.  
  165. --
  166. Read all administrative posts before putting your post up.  Mailing
  167. list: announce-request@cs.ucdavis.edu.  Comments to zerkle@cs.ucdavis.edu.
  168. MAIL ALL COMP.SYS.AMIGA.ANNOUNCE ANNOUNCEMENTS TO announce@cs.ucdavis.edu.
  169.  
  170.  
  171.